package course.d1230;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;

/*
    Socket类：代表客户端类
    1.public Socket()通过系统默认类型的 SocketImpl 创建未连接套接字
    2.public Socket(InetAddress address,int port)throws IOException
    创建一个流套接字并将其连接到指定 IP 地址的指定端口号。
    3.public Socket(String host,int port)throws UnknownHostException,IOException
    创建一个流套接字并将其连接到指定主机上的指定端口号。

    成员方法：
    1.public InputStream getInputStream()throws IOException
    返回此套接字的输入流。
     如果此套接字具有关联的通道，则所得的输入流会将其所有操作委托给通道。
     如果通道为非阻塞模式，则输入流的 read 操作将抛出 IllegalBlockingModeException。
    2.public OutputStream getOutputStream()throws IOException
    返回此套接字的输出流。
    如果此套接字具有关联的通道，则得到的输出流会将其所有操作委托给通道。
    如果通道为非阻塞模式，则输出流的 write 操作将抛出 IllegalBlockingModeException。

创建客户端步骤：
1.创建一个Socket对象socket，绑定访问的服务器端的ip和端口号
2.使用客户端对象socket中的getOutputStream，获取一个网络输出流对象
3.使用网络字节输出流写出一个数据到服务器端
4.使用客户端对象socket中的getInputStream，获取一个网络字节输入流
5.使用网络字节 输入流对象读取服务器端发送的数据
6.关闭客户端对象
 */
public class p2 {
    public static void main(String[] args) {
        try {
            Socket socket  = new Socket("192.168.43.8",8888);
            OutputStream os = socket.getOutputStream();
            os.write("一壶清酒，一身沉醉".getBytes());
            os.write("一念来回，度余生无悔".getBytes());

            InputStream is = socket.getInputStream();
            byte[] bs=  new byte[1024];
            int read;
            read=is.read(bs);
            System.out.println(new String(bs,0,read));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
